package com.cherrypt.api.core.service;

import com.cherrypt.api.model.dataobject.Peer;

import java.util.List;

public interface PeerService {
    void savePeer(int tid, Peer peer);

    void saveAllPeer(int tid, List<Peer> peerList);

    Peer getPeer(int tid, Peer peer);

    List<Peer> getPeerList(int tid);

    List<Peer> getAllPeer(int tid);

    int getPeerLen(int tid);

    void updatePeerTTL(int tid, Peer peer);

    void removePeer(int tid, Peer peer);

    boolean existPeer(int tid, Peer peer);

    void saveDownloadPeer(int tid, Peer peer);

    Peer getDownloadPeer(int tid, Peer peer);

    List<Peer> getDownloadPeerList(int tid);

    int getDownloadPeerLen(int tid);

    void removeDownloadPeer(int tid, Peer peer);

    boolean existDownloadPeer(int tid, Peer peer);

    int getComplete(int tid);

    void completeIncrOne(int tid);

    void completeIncr(int tid, int incr);

    void updateDownloadPeerTTL(int tid, Peer peer);
}
